Semanticdb complexity is certainly an issue. It is a rather hairy problem to try and solve.
This file also provides support for
semanticdb-minor-mode, which automatically
associates files with tables in databases so that tags are
saved while a buffer is not in memory.
The database and tables both also provide applicate cache information, and cache flushing system. The semanticdb search routines use caches to save datastructures that are complex to calculate.
Lastly, it provides the concept of project
root. It is a system by which a file can be associated
with the root of a project, so if you have a tree of
directories and source files, it can find the root, and allow
a tag-search to span all available databases in that
directory hierarchy.